package negocios;

/**
 * Classe que implementa uma Localizacao do Sistema I'mHere, considerando dados
 * como latitude, longitude, pais e cidade.
 * 
 * @author Jonathan Brilhante
 * @author Jose Rafael
 * @author Nata Venancio
 * @author Renato Almeida
 * 
 * @version 1.0
 */

public class Localizacao {
	private static final String ENDL = System.getProperty("line.separator");
	private double latitude;
	private double longitude;
	private String pais;
	private String cidade;

	/**
	 * Cria uma localizacao a partir da latitude, longitude, pais e cidade
	 * 
	 * @param latitude
	 *            a latitude
	 * @param longitude
	 *            a longitude
	 * @param pais
	 *            o pais, no formato String
	 * @param cidade
	 *            a cidade, no formato String
	 */
	public Localizacao(double latitude, double longitude, String pais,
			String cidade) {
		this(latitude, longitude);
		this.pais = pais;
		this.cidade = cidade;
	}

	/**
	 * Cria uma Localizacao a partir da latitude e da longitude
	 * 
	 * @param latitude
	 *            a latitude
	 * @param longitude
	 *            a longitude
	 */
	public Localizacao(double latitude, double longitude) {
		this.latitude = latitude;
		this.longitude = longitude;
	}

	/**
	 * Retorna a String que representa o pais
	 * 
	 * @return o pais
	 */
	public String getPais() {
		return pais;
	}

	/**
	 * Retorna a String que representa a cidade
	 * 
	 * @return a cidade
	 */
	public String getCidade() {
		return cidade;
	}

	/**
	 * Retorna a longitude dessa localizacao
	 * 
	 * @return a longitude dessa localizacao
	 */
	public double getLongitude() {
		return longitude;
	}

	/**
	 * Retorna a latitude dessa localizacao
	 * 
	 * @return a latitude dessa localizacao
	 */
	public double getLatitude() {
		return latitude;
	}

	/**
	 * Retorna uma String contendo os dados de GPS, no formato Lat: ... , Long:
	 * ...
	 * 
	 * @return a String no formato acima
	 */
	public String getGPS() {
		return "Lat: " + latitude + ", Long: " + longitude;
	}

	/**
	 * Retorna a representacao String da Localizacao, com latitude, longitude,
	 * pais, e cidade
	 * 
	 * @return a representacao String
	 */
	public String toString() {
		return "Latitude: " + latitude + ENDL + "Longitude: " + longitude
				+ ENDL + "Pais: "
				+ (pais != null ? pais : "Informacao indisponivel") + ENDL
				+ "Estado: "
				+ (cidade != null ? cidade : "Informacao indisponivel");
	}
}
